/*
 *    Copyright (c) 2018-2025, hycloud All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: hycloud
 */
import {getDetails} from '@/api/admin/user'


var validateUsername = (rule, value, callback) => {
  getDetails(value).then(response => {
    if (window.boxType === 'edit') callback()
    const result = response.data.data
    if (result !== null) {
      callback(new Error('用户名已经存在'))
    } else {
      callback()
    }
  })
}
export const tableOption = {
  border: true,
  index: true,
  indexLabel: '序号',
  stripe: true,
  menuAlign: 'center',
  searchMenuSpan:6,
  editBtn: false,
  labelWidth: 120,
  delBtn: false,
  align: 'center',
  addBtn: false,
  column: [{
    fixed: true,
    label: 'id',
    prop: 'userId',
    span: 24,
    hide: true,
    editDisabled: true,
    addDisplay: false
  }, {
    fixed: true,
    label: '用户名',
    prop: 'username',
    editDisabled: true,
    slot: true,
    search: true,
    span: 24,
    rules: [{
      required: true,
      message: '请输入用户名'
    },
      {
        min: 3,
        max: 20,
        message: '长度在 3 到 20 个字符',
        trigger: 'blur'
      },
      {validator: validateUsername, trigger: 'blur'}
    ]
  }, {
    fixed: true,
    label: "姓名",
    prop: "realname",
    search: true,
    span: 24,
    rules: [
      {
        required: true,
        message: "请输入姓名",
      },
      {
        min: 2,
        max: 12,
        message: "长度在 2 到 12 个字符",
        trigger: "blur",
      },
    ],
  },	  {
    "type": "select",
    "label": "性别",
    "prop": "sex",
    dicUrl: '/admin/dict/type/gender',
    search: true,
    rules: [{
      required: true,
      message: '请选择性别',
      trigger: 'change'
    }],
    "span": 24
  },	  {
    "type": "input",
    "label": "身份证号码",
    hide: true,
    "prop": "cardId",
    maxlength: 20,
    // rules: [{
    //   required: true,
    //   message: '请输入身份证号码',
    //   trigger: 'blur'
    // }],
    "span": 24
  }, {
    label: '密码',
    prop: 'password',
    type: "password",
    value: "",
    hide: true,
    span: 24,
    rules: [
    {
      required: true,
      message: "请输入密码",
    },
    {
      min: 6,
      max: 20,
      message: '长度在 6 到 20 个字符',
      trigger: 'blur'
    }]
  }, {
    label: '所属部门',
    prop: 'deptId',
    formslot: true,
    slot: true,
    span: 24,
    // hide: true,
    // dataType:"number",
    rules: [{
      required: true,
      message: '请选择部门',
      trigger: 'change'
    }]
  }, {
    label: '手机号码',
    prop: 'phone',
    value: '',
    span: 24,
    rules: [
    {
      required: true,
      message: '请填写手机号码',
      trigger: 'blur'
    // },
    // {
    //   min: 11,
    //   max: 11,
    //   message: '长度在 11 个字符',
    //   trigger: 'blur'
    }]
  },{
    type: "input",
    label: "工号",
    prop: "staffId",
    search: true,
    span: 24,
    rules: [
      {
        message: "请输入工号",
      },
    ],
  }, {
    type: 'select',
    label: "职务",
    prop: "post",
    span: 24,
    dicUrl: '/admin/sysposition/page?size=-1',
    // rules: [{
    //   required: true,
    //   message: '请选择职务',
    //   trigger: 'change'
    // }],
    props: {
      label: 'name',
      value: 'id',
      res: "data.records"
    }
   },	  {
      "type": "select",
      "label": "职级",
      "prop": "level",
      // rules: [{
      //   required: true,
      //   message: '请选择职级',
      //   trigger: 'change'
      // }],
      dicUrl: '/admin/dict/type/post_level',
      "span": 24
  },	  {
    "type": "select",
    "label": "区域",
    "prop": "areaId",
    dicUrl: '/admin/sysarea/page?parentId=0',
    props: {
      label: 'name',
      value:'areaId',
      res: "data.records"
    },
    rules: [{
      required: true,
      message: '请选择区域',
      trigger: 'change'
    }],
    // slot: true,
    "span": 24
  },{
    label: '角色',
    prop: 'role',
    formslot: true,
    slot: true,
    overHidden: true,
    span: 24,
    rules: [{
      required: true,
      message: '请选择角色',
      trigger: 'blur'
    }]
  }, {
    label: '状态',
    prop: 'lockFlag',
    type: 'radio',
    slot: true,
    border:true,
    span: 24,
    rules: [{
      required: true,
      message: '请选择状态',
      trigger: 'blur'
    }],
    dicData: [{
      label: '有效',
      value: '0'
    }, {
      label: '锁定',
      value: '9'
    }]
  }, {
    label: '邮箱',
    prop: 'email',
    slot: true,
    span: 24,
  },	  {
    "type": "number",
    "label": "排序",
    "prop": "sort",
    maxRows: 100000,
    "span": 24
  }, {
    width: 180,
    label: '创建时间',
    prop: 'createTime',
    type: 'datetime',
    format: 'yyyy-MM-dd HH:mm',
    valueFormat: 'yyyy-MM-dd HH:mm:ss',
    editDisabled: true,
    addDisplay: false,
    span: 24
  }]
}
